pandas表合并 | 您所在的位置:网站首页 › python 两个excel合并 › pandas表合并 |
在处理观测站气象数据时,遇到了需要将两个表的数据整理到一起的问题,两个表的数据结构如下:
下一步进行合并,使用pandas.concat()函数实现,关于concat()函数具体的解释可以参考: https://blog.csdn.net/mr_hhh/article/details/79488445 但是这里有个问题,需要设置索引列为‘Sta_ID’这一列,如果默认索引为这一列,由于该列有重复项,在执行concat()函数时会报错 InvalidIndexError: Reindexing only valid with uniquely valued Index objects’ 为解决这个问题,将表A读入时采用默认索引,然后用drop_duplicates()函数删掉重复的行。注意:我的数据B表没有重复项要去除,所以读的时候直接默认索引列为‘Sta_ID’了。 X = A.drop_duplicates(subset=['Sta_ID'])这里我在测试的时候发现,如果把返回值还给A(如A.drop_duplicates(subset=['Sta_ID'])和A=A.drop_duplicates(subset=['Sta_ID'])),那A是没有变化的,所以把这个值给了X,就可以实现了。 drop_duplicates()函数参考 https://blog.csdn.net/Disany/article/details/82689948 现在需要把删除重复项的表X的索引列改为‘Sta_ID’列: X = X.set_index('Sta_ID')
完整程序如下: import pandas as pd # 从excel导入表 A = pd.read_excel('E:\\MODIS\\MCD19A2\\AOD_Max.xls', sheet_name='AOD_Max') # 读取 excel B = pd.read_excel('E:\\MODIS\\MCD19A2\\AOD_Max.xls', sheet_name='Station_Max', index_col=0) # 去除重复行 X = A.drop_duplicates(subset=['Sta_ID']) # 更换索引列 X = X.set_index('Sta_ID') # 按索引列合并 merge = pd.concat([X, B], axis=1, join='inner') print(merge) # pandas表存出 writer = pd.ExcelWriter('E:\\MODIS\\MCD19A2\\AOD_Sta.xls') merge.to_excel(writer,float_format='%.5f') writer.save() |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |